package com.smart.community.feign.property.service;

import com.smart.community.commons.dto.property.PropertyCompanyDTO;
import com.smart.community.feign.property.fallback.UserPropertyCompanyAuthFeignFallback;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * 用户物业公司认证Feign接口
 * 专门用于登录时的权限检查
 * 
 * @author Wu.Liang
 * @version 1.0.0
 * @since 2025-01-30
 */
@Tag(name = "用户物业公司认证Feign接口", description = "用户物业公司认证相关Feign接口")
@FeignClient(
    name = "smart-community-property",
    path = "/property",
    fallback = UserPropertyCompanyAuthFeignFallback.class,
    contextId = "iUserPropertyCompanyAuthFeign"
)
public interface IUserPropertyCompanyAuthFeign {
    
    /**
     * 根据物业公司ID获取物业公司信息
     * 
     * @param propertyCompanyId 物业公司ID
     * @return 物业公司信息
     */
    @Operation(summary = "根据物业公司ID获取物业公司信息")
    @GetMapping("/feign/user-property-company-auth/property-company/{propertyCompanyId}")
    PropertyCompanyDTO getPropertyCompanyById(@Parameter(description = "物业公司ID") @PathVariable("propertyCompanyId") Long propertyCompanyId);
} 